
//_c
export function createElementVNode(vm,tag,data,...children){
  if(data == null) {
    data = {}
  }
  let key = data.key
  if(key){
    delete data.key
  }
  return vnode(vm, tag, key, data, children)
}

export function createTextVNode(vm,text) {
  return vnode(vm,undefined,undefined,undefined,undefined,text)

}

// 和ast一样吗？ ast做的是语法层面的转化，描述语法本身 (描述js css html)
// 虚拟dom 描述的是dom元素，可以增加一些自定义属性 （描述dom）
function vnode(vm, tag, key, data, children,text){
  return {
    vm,
    tag,
    key,
    data, 
    children,
    text
  }
}